home *** CD-ROM | disk | FTP | other *** search
/ Alpha CD-ROM Bonus Pack / Alpha CD-ROM Bonus Pack.iso / fontconn / disk1 / setupapi.in_ / setupapi.in
Encoding:
Text File  |  1992-08-05  |  11.2 KB  |  307 lines

  1. GLOBAL hSetup AS INTEGER
  2. GLOBAL fFrameInit AS INTEGER
  3. GLOBAL fInstallInit AS INTEGER
  4. CONST SM_CXSCREEN = 0
  5. CONST SM_CYSCREEN = 1
  6. CONST WF_80x87    = 1024
  7. CONST WF_CPU186   =  128
  8. CONST WF_CPU286   =    2
  9. CONST WF_CPU386   =    4
  10. CONST WF_CPU486   =    8
  11. CONST WF_STANDARD =   16
  12. CONST WF_ENHANCED =   32
  13. CONST MB_OK          = 0
  14. CONST MB_ICONHAND    = 16
  15. CONST MB_TASKMODAL   = 8192
  16. DECLARE FUNCTION DoMsgBox LIB "mscomstf.dll" (lpText$,lpCaption$,wType%) As INTEGER
  17. DECLARE SUB SetWindowText LIB "User" (hwnd%, lpString$)
  18. DECLARE FUNCTION GetProfileString LIB "kernel" (szSect$, szKey$, szDefault$, szBuf$, cbBuf%) AS INTEGER
  19. CONST cmoVital       = 1
  20. CONST cmoCopy        = 2
  21. CONST cmoUndo        = 4
  22. CONST cmoRoot        = 8
  23. CONST cmoDecompress  = 16
  24. CONST cmoTimeStamp   = 32
  25. CONST cmoReadOnly    = 64
  26. CONST cmoBackup      = 128
  27. CONST cmoForce       = 256
  28. CONST cmoRemove      = 512
  29. CONST cmoOverwrite   = 1024
  30. CONST cmoAppend      = 2048
  31. CONST cmoPrepend     = 4096
  32. CONST cmoNone        = 0
  33. CONST cmoAll         = 65535
  34. CONST femExists     = 0
  35. CONST femRead       = 1
  36. CONST femWrite      = 2
  37. CONST femReadWrite  = 3
  38. CONST ynrcNo         = 0
  39. CONST ynrcYes        = 1
  40. CONST ynrcErr1       = 2
  41. CONST ynrcErr2       = 3
  42. CONST ynrcErr3       = 4
  43. CONST ynrcErr4       = 5
  44. CONST ynrcErr5       = 6
  45. CONST ynrcErr6       = 7
  46. CONST ynrcErr7       = 8
  47. CONST ynrcErr8       = 9
  48. CONST ynrcErr9       = 10
  49. CONST grcOkay       = 0
  50. CONST grcNotOkay    = 1
  51. CONST grcUserQuit   = 48
  52. CONST cbSymValMax = 512
  53. CONST STFERR      = 1024   
  54. CONST STFQUIT     = 1025   
  55. CONST scmOff      = 0
  56. CONST scmOnIgnore = 1
  57. CONST scmOnFatal  = 2
  58. DECLARE FUNCTION FOpenInf LIB "mscomstf.dll" (szFile$, fCheck%, fCheckSyms%) AS INTEGER
  59. DECLARE FUNCTION CbGetInfSectionKeyField LIB "mscomstf.dll" (szSect$, szKey$, iField%, szBuf$, cbBuf%) AS INTEGER
  60. DECLARE FUNCTION FSetBitmap LIB "msshlstf.dll" (szDll$, Bitmap%) AS INTEGER
  61. DECLARE FUNCTION FDoDialog LIB "msuilstf.dll" (hwnd%, szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS INTEGER
  62. DECLARE FUNCTION FKillNDialogs LIB "msuilstf.dll" (n%) AS INTEGER
  63. DECLARE FUNCTION FSetSymbolValue LIB "msshlstf.dll" (szSymbol$, szValue$) AS INTEGER
  64. DECLARE FUNCTION FRemoveSymbol LIB "mscomstf.dll" (szSym$) AS INTEGER
  65. DECLARE FUNCTION CbGetSymbolValue LIB "mscomstf.dll" (szSymbol$, szValue$, Length%) AS INTEGER
  66. DECLARE FUNCTION InitializeFrame LIB "msshlstf.dll" (szCmdLine$) AS INTEGER
  67. DECLARE FUNCTION HwndFrame LIB "msshlstf.dll" AS INTEGER
  68. DECLARE FUNCTION HinstFrame LIB "msshlstf.dll" AS INTEGER
  69. DECLARE FUNCTION FCreateDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
  70. DECLARE FUNCTION FAddSectionFilesToCopyList LIB "mscomstf.dll" (szSect$, szSrc$, szDest$) AS INTEGER
  71. DECLARE FUNCTION FAddSectionKeyFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  72. DECLARE FUNCTION FAddSpecialFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  73. DECLARE FUNCTION GrcCopyFilesInCopyList LIB "msinsstf.dll" (hInstance%) AS INTEGER
  74. DECLARE FUNCTION FCreateIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
  75. DECLARE FUNCTION FCreateProgManGroup LIB "msinsstf.dll" (szGroup$, szPath$, cmo%) AS INTEGER
  76. DECLARE FUNCTION FCreateProgManItem LIB "msinsstf.dll" (szGroup$, szItem$, szCmd$, cmo%) AS INTEGER
  77. DECLARE FUNCTION FShowProgManGroup LIB "msinsstf.dll" (szGroup$, szCmd$, cmo%) AS INTEGER
  78. DECLARE FUNCTION LcbGetCopyListCost LIB "msinsstf.dll" (szExtraList$, szCostList$, szNeedList$) AS LONG
  79. DECLARE FUNCTION FCopyOneFile LIB "msinsstf.dll" (szSrc$, szDest$, cmo%, fAppend%) AS INTEGER
  80. DECLARE FUNCTION YnrcRemoveFile LIB "msinsstf.dll" (szFullPathSrc$, cmo%) AS INTEGER
  81. DECLARE FUNCTION YnrcBackupFile LIB "msinsstf.dll" (szFullPath$, szBackup$, cmo%) AS INTEGER
  82. DECLARE FUNCTION FInitializeInstall LIB "msinsstf.dll" (hinst%, hwndFrame%) AS INTEGER
  83. DECLARE FUNCTION WFindFileUsingFileOpen LIB "msinsstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
  84. DECLARE FUNCTION FIsDirWritable LIB "msinsstf.dll" (szDir$) AS INTEGER
  85. DECLARE FUNCTION FIsFileWritable LIB "msinsstf.dll" (szFile$) AS INTEGER
  86. DECLARE FUNCTION FPrependToPath LIB "msinsstf.dll" (szSrc$, szDst$, szDir$, cmo%) AS INTEGER
  87. DECLARE SUB SetBitmap(szDll$, Bitmap%)
  88. DECLARE FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS STRING
  89. DECLARE SUB UIPop (n%)
  90. DECLARE SUB UIPopAll
  91. DECLARE SUB SetTitle (sz$)
  92. DECLARE SUB ReadInfFile (szFile$)
  93. DECLARE SUB SetSymbolValue (szSymbol$, szValue$)
  94. DECLARE SUB RemoveSymbol (szSym$)
  95. DECLARE FUNCTION GetSymbolValue (szSymbol$) AS STRING
  96. DECLARE FUNCTION InitFrame (szCmdLine$) AS INTEGER
  97. DECLARE FUNCTION InitSetup (szCmdLine$) AS INTEGER
  98. DECLARE SUB CreateDir (szDir$, cmo%)
  99. DECLARE SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$)
  100. DECLARE SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  101. DECLARE SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  102. DECLARE SUB ClearCopyList
  103. DECLARE SUB      ResetCopyList LIB "msinsstf.dll"
  104. DECLARE SUB CopyFilesInCopyList
  105. DECLARE SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
  106. DECLARE SUB CreateProgmanGroup (szGroup$, szPath$, cmo%)
  107. DECLARE SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%)
  108. DECLARE SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%)
  109. DECLARE FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) AS LONG
  110. DECLARE SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%)
  111. DECLARE SUB RemoveFile (szFullPathSrc$, cmo%)
  112. DECLARE SUB BackupFile (szFullPath$, szBackup$)
  113. DECLARE SUB InitInstall
  114. DECLARE FUNCTION FindFileUsingFileOpen (szFile$) AS STRING
  115. DECLARE FUNCTION IsDirWritable (szDir$) AS INTEGER
  116. DECLARE FUNCTION IsFileWritable (szFile$) AS INTEGER
  117. DECLARE SUB PrependToPath (szSrc$, szDst$, szDir$, cmo%)
  118. SUB ClearCopyList STATIC
  119.     ResetCopyList
  120. END SUB
  121.  
  122. FUNCTION InitSetup(szCmdLine$) STATIC AS INTEGER
  123.     fFrameInit = 0
  124.     fInstallInit = 0
  125.     IF hSetup > 0 THEN
  126.     END IF
  127.     i% = InitFrame(szCmdLine$)
  128.     fFrameInit = 1
  129.     InitInstall
  130.     fInstallInit = 1
  131.     InitSetup = i%
  132. END FUNCTION
  133. FUNCTION InitFrame(szCmdLine$) STATIC AS INTEGER
  134.     IF hSetup > 0 THEN
  135.     ELSE
  136.         i% = InitializeFrame(szCmdLine$)
  137.         IF i% = -1 THEN
  138.             END   
  139.         ELSEIF i% = 0 THEN
  140.             END
  141.         ELSE
  142.             InitFrame = i%
  143.         END IF
  144.     END IF
  145. END FUNCTION
  146. SUB SetBitmap(szDll$, Bitmap%) STATIC
  147.     IF FSetBitmap(szDll$, Bitmap%) = 0 THEN
  148.         ERROR STFERR
  149.     END IF
  150. END SUB
  151. SUB SetTitle(sz$) STATIC
  152.     SetWindowText HwndFrame(), sz$
  153. END SUB
  154. SUB ReadInfFile (szFile$) STATIC
  155.     IF FOpenInf(szFile$, 1, 0) = 0 THEN
  156.         ERROR STFERR
  157.     END IF
  158. END SUB
  159. FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) STATIC AS STRING
  160.     IF FDoDialog(HwndFrame(), szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) = 0 THEN
  161.         ERROR STFERR
  162.     ELSE
  163.         UIStartDlg = GetSymbolValue("DLGEVENT")
  164.     END IF
  165. END FUNCTION
  166. SUB UIPop (n%) STATIC
  167.     IF FKillNDialogs(n%) = 0 THEN
  168.         ERROR STFERR
  169.     END IF
  170. END SUB
  171. SUB UIPopAll STATIC
  172.     IF FKillNDialogs(65535) = 0 THEN
  173.         ERROR STFERR
  174.     END IF
  175. END SUB
  176. FUNCTION GetSymbolValue(szSymbol$) STATIC AS STRING
  177.     szValue$ = string$(cbSymValMax,32)
  178.     Length% = CbGetSymbolValue(szSymbol$, szValue$, cbSymValMax)
  179.     GetSymbolValue = szValue$
  180.     IF Length% >= cbSymValMax THEN
  181.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  182.         ERROR STFERR
  183.     END IF
  184.     IF szSymbol$ = "" THEN
  185.         ERROR STFERR
  186.     END IF
  187.     szValue$ = ""
  188. END FUNCTION
  189. SUB SetSymbolValue(szSymbol$, szValue$) STATIC
  190.     IF FSetSymbolValue(szSymbol$, szValue$) = 0 THEN
  191.         ERROR STFERR
  192.     END IF
  193. END SUB
  194. SUB RemoveSymbol(szSym$) STATIC
  195.     IF FRemoveSymbol(szSym$) = 0 THEN
  196.         ERROR STFERR
  197.     END IF
  198. END SUB
  199. SUB InitInstall STATIC
  200.     IF hSetup > 0 THEN
  201.     ELSEIF FInitializeInstall(HinstFrame(), HwndFrame()) = 0 THEN
  202.         END
  203.     END IF
  204. END SUB
  205. SUB CreateDir (szDir$, cmo%) STATIC
  206.     IF FCreateDir(szDir$, cmo%) = 0 THEN
  207.         ERROR STFERR
  208.     END IF
  209. END SUB
  210. SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
  211.     IF FCreateIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
  212.         ERROR STFERR
  213.     END IF
  214. END SUB
  215. SUB CreateProgmanGroup (szGroup$, szPath$, cmo%) STATIC
  216.     IF FCreateProgManGroup(szGroup$, szPath$, cmo%) = 0 THEN
  217.         ERROR STFERR
  218.     END IF
  219. END SUB
  220. SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%) STATIC
  221.     IF FShowProgManGroup(szGroup$, STR$(Cmd%), cmo%) = 0 THEN
  222.         ERROR STFERR
  223.     END IF
  224. END SUB
  225. FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) STATIC AS LONG
  226.     lNeed& = LcbGetCopyListCost (szExtraList$, szCostList$, szNeedList$)
  227.     IF lNeed& < 0 THEN
  228.         ERROR STFERR
  229.     END IF
  230.     GetCopyListCost = lNeed&
  231. END FUNCTION
  232. SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) STATIC
  233.     szItemNew$ = szItem$
  234.     IF szOther$ <> "" THEN
  235.         szItemNew$ = szItem$ + "," + szOther$
  236.     END IF
  237.     IF FCreateProgManItem(szGroup$, szItemNew$, szCmd$, cmo%) = 0 THEN
  238.         ERROR STFERR
  239.     END IF
  240.     szItemNew$ = ""
  241. END SUB
  242. SUB CopyFilesInCopyList STATIC
  243.     grc% = GrcCopyFilesInCopyList (HinstFrame())
  244.     IF grc% = grcUserQuit THEN
  245.         ERROR STFQUIT
  246.     ELSEIF grc% > 0 THEN
  247.         ERROR STFERR
  248.     END IF
  249. END SUB
  250. SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%) STATIC
  251.     IF  FCopyOneFile(szFullPathSrc$, szFullPathDst$, (cmo OR cmoCopy), fAppend%) = 0 THEN
  252.         ERROR STFERR
  253.     END IF
  254. END SUB
  255. SUB RemoveFile (szFullPathSrc$, cmo%) STATIC
  256.     IF  YnrcRemoveFile(szFullPathSrc$, cmo%) = ynrcNo THEN
  257.         ERROR STFERR
  258.     END IF
  259. END SUB
  260. SUB BackupFile (szFullPath$, szBackup$) STATIC
  261.     IF YnrcBackupFile(szFullPath$, szBackup$, cmoNone) = ynrcNo THEN
  262.         ERROR STFERR
  263.     END IF
  264. END SUB
  265. SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$) STATIC
  266.     IF FAddSectionFilesToCopyList (szSect$, szSrc$, szDest$) = 0 THEN
  267.         ERROR STFERR
  268.     END IF
  269. END SUB
  270. SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  271.     IF FAddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  272.         ERROR STFERR
  273.     END IF
  274. END SUB
  275. SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  276.     IF FAddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  277.         ERROR STFERR
  278.     END IF
  279. END SUB
  280. FUNCTION FindFileUsingFileOpen (szFile$) STATIC AS STRING
  281.     szBuf$ = STRING$(512, 32)
  282.     wRet% = WFindFileUsingFileOpen(szFile$, szBuf$, len(szBuf$))
  283.     IF wRet% = 0 THEN
  284.         FindFileUsingFileOpen = szBuf$
  285.     ELSEIF wRet% = 1 THEN
  286.         FindFileUsingFileOpen = ""
  287.     ELSE
  288.         ERROR STFERR
  289.     END IF
  290.     szBuf$ = ""
  291. END FUNCTION
  292. FUNCTION IsDirWritable (szDir$) STATIC AS INTEGER
  293.     IsDirWritable = FIsDirWritable(szDir$)
  294. END FUNCTION
  295. FUNCTION IsFileWritable (szFile$) STATIC AS INTEGER
  296.     IsFileWritable = FIsFileWritable(szFile$)
  297. END FUNCTION
  298. SUB PrependToPath (szSrc$, szDst$, szDir$, cmo%) STATIC
  299.     IF FPrependToPath (szSrc$, szDst$, szDir$, cmo%) = 0 THEN
  300.         ERROR STFERR
  301.     END IF
  302. END SUB
  303. TRAP CleanupTrap From "MSSHLSTF.DLL"
  304. End Trap
  305. hSetup = InitSetup(COMMAND$)
  306. ON ERROR GOTO QUIT
  307.